Data storage systems conventionally include one or more storage processors connected to a disk array via a high-speed transmission medium, such as optical fiber. An example of a data storage system is the VNX® platform from EMC Corporation of Hopkinton, Mass.
Many data storage systems produce metrics that reflect their performance and workload. One such type of metric is a short term average service time that is determined by calculating a moving average of the last n values of interest. However, the calculating of the moving average is a very resource intensive computation. Such a calculation typically requires storing the last n values so that the moving average may be taken over those values. This requires at least n memory locations (e.g., n may typically be several thousand storage locations) plus a few extra memory locations for computations. This large size prevents the code from being run in the kernel.
Furthermore, it is desirable to calculate the short term moving average service time for each component. If there are m components then at least n×m memory storage locations are required for the calculation (e.g., m may typically be several hundred so n×m may be several hundred thousand memory locations). This puts further resource demands on the system that again cannot be practically realized by code running in the kernel.
The determination of trends in the short term moving average service times further increases the number of resources required. If the trend over the last p moving averages is needed then it is necessary to calculate p moving averages. The determination of the trends in the service time short term moving averages for each component requires at least n×m×p memory storage locations (e.g., p may typically be 4 or 5 so n×m×p is on the order of a million storage locations). The puts even further resource demands on the system with code that cannot be run in the kernel.
There is, therefore, a need for a new improved approach for dealing with the storing of data storage metrics.